bin: Only handle size for the child if it is visible
authorBenjamin Otte <otte@redhat.com>
Sun, 11 Nov 2012 18:30:11 +0000 (19:30 +0100)
committerBenjamin Otte <otte@redhat.com>
Sun, 11 Nov 2012 19:26:27 +0000 (20:26 +0100)
gtk/gtkbin.c

index e17d2be79431a1d5d5e5809658a357a2e00cf8e3..11b46f4678e2baa2d5e17a283ea5959a310fd9fa 100644 (file)
@@ -189,7 +189,7 @@ gtk_bin_get_preferred_width (GtkWidget *widget,
   GtkBin *bin = GTK_BIN (widget);
   GtkBinPrivate *priv = bin->priv;
 
-  if (priv->child)
+  if (priv->child && gtk_widget_get_visible (priv->child))
     {
       gint child_min, child_nat;
       gtk_widget_get_preferred_width (priv->child,
@@ -207,7 +207,7 @@ gtk_bin_get_preferred_height (GtkWidget *widget,
   GtkBin *bin = GTK_BIN (widget);
   GtkBinPrivate *priv = bin->priv;
 
-  if (priv->child)
+  if (priv->child && gtk_widget_get_visible (priv->child))
     {
       gint child_min, child_nat;
       gtk_widget_get_preferred_height (priv->child,
@@ -226,7 +226,7 @@ gtk_bin_get_preferred_width_for_height (GtkWidget *widget,
   GtkBin *bin = GTK_BIN (widget);
   GtkBinPrivate *priv = bin->priv;
 
-  if (priv->child)
+  if (priv->child && gtk_widget_get_visible (priv->child))
     {
       gint child_min, child_nat;
       gtk_widget_get_preferred_width_for_height (priv->child, height,
@@ -248,7 +248,7 @@ gtk_bin_get_preferred_height_for_width  (GtkWidget *widget,
   GtkBin *bin = GTK_BIN (widget);
   GtkBinPrivate *priv = bin->priv;
 
-  if (priv->child)
+  if (priv->child && gtk_widget_get_visible (priv->child))
     {
       gint child_min, child_nat;
       gtk_widget_get_preferred_height_for_width (priv->child, width,
@@ -270,7 +270,7 @@ gtk_bin_size_allocate (GtkWidget     *widget,
 
   gtk_widget_set_allocation (widget, allocation);
 
-  if (priv->child)
+  if (priv->child && gtk_widget_get_visible (priv->child))
     gtk_widget_size_allocate (priv->child, allocation);
 }